package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Objects;

import lombok.Data;

/**
 * @desc AchievementCopyrightOwningDto
 * @使用场景
 */
@Data
public class AchievementCopyrightOwningDto
  extends BaseDto
  implements Serializable {

  /**
   * 成果版权归属ID
   */
  @ApiModelProperty("成果版权归属ID")
  private String achievementCopyrightOwningId;

  /**
   * 成果ID
   */
  @ApiModelProperty("成果ID")
  private String achievementId;

  /**
   * 版权归属对象类型 ORGANIZATION:组织 DEPARTMENT:部门 PERSONAL:个人
   */
  @ApiModelProperty("版权归属对象类型")
  private String copyrightObjectTypeCode;

  /**
   * 版权归属对象ID
   */
  @ApiModelProperty("版权归属对象ID")
  private String copyrightObjectId;

  /**
   * 版权归属对象名称
   */
  @ApiModelProperty("版权归属对象名称")
  private String copyrightObjectName;

  /**
   * 业绩责任部门ID
   */
  @ApiModelProperty("业绩责任部门ID")
  private String dutyDeptId;

  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    if (!super.equals(o)) return false;
    AchievementCopyrightOwningDto that = (AchievementCopyrightOwningDto) o;
    return (
      achievementCopyrightOwningId == that.achievementCopyrightOwningId &&
      achievementId == that.achievementId &&
      copyrightObjectTypeCode == that.copyrightObjectTypeCode &&
      copyrightObjectId == that.copyrightObjectId &&
      copyrightObjectName == that.copyrightObjectName &&
      dutyDeptId == that.dutyDeptId
    );
  }

  @Override
  public int hashCode() {
    return Objects.hash(
      super.hashCode(),
      achievementCopyrightOwningId,
      achievementId,
      copyrightObjectTypeCode,
      copyrightObjectId,
      copyrightObjectName,
      dutyDeptId
    );
  }

}
